package network;
import entities.*;

abstract class ClientClassSignatures{

	/**
Sends info to be matched in Authenticate() in Server class
	 **/
	boolean logIn(String userName, String password){
		return true;
	}

	/**
sends userName to Server class
To be written to database
	 **/
	boolean register (String userName){
		return true;
	}

	/**
sends password to Server class
To be written to database and Hashed
	 **/
	boolean activate (String password){
		return true;
	}

	/** Class Candidates Needs To be Constructed 
	Consider adding a list of Voters after 
	updating the database to show the allowed voters for this voting
	 **/
	boolean createVoting(String StartDate, String EndDate, Candidate[] candidates, String question){
		return true;
	}

	/** use the Object Voting to view the voting choosen (Voting Name, Voting Candidates, and Voting Question) **/
	Voting viewVoting(String votingName){
		return null;
	}

	/** This method should be used to view all the votings this user either created or voted in **/
	String[] viewPendingVotings(String username){
		return null;
	}
	/** This method is used to view the votings of each user **/
	String getVote(String votingName){
		return null;
	}

	/** This Method is responsible for making the vote of the user **/
	String makeVote(int votingID, Candidate candidateChosen){
		return "";
	}

	/**
sends userName to Server class
check if matches activation link 
and wait for user's new password 
to be written
	 **/
	boolean activationLink (String activationCode){
		return true;
	}

	/**
Responsible for sending messages to the Server
Should match formats with receive() in Server class
	 **/
	public void send(String msg){
	}

	public String receive(){
		return null;

	}
}